package com.common;


import com.merge.pojo.Data;

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;


public class FileUtils {


    /**
     * 是否存在该文件
     * @param path
     * @return
     */
    public static boolean exists(String path) {
        File file = new File(path);
        if (file.exists()) return true;
        return false;
    }

    /**
     * 获取文件总长度
     * @param path
     * @return
     * @throws IOException
     */
    public static long totalLine(String path) throws IOException {
        if (path.endsWith(File.separator)) {
            System.out.println("获取总行数"+ path + "失败, 目标文件不能是目录");
            return 0;
        }

        if (!exists(path)) {
            System.out.println("获取总行数"+ path + "失败, 目标文件不存存在");
            return 0;
        }
        long total = Files.lines(Paths.get(path)).count();
        return total;
    }

    /**
     * 创建文件
     * @param path
     * @return
     */
    public static boolean makeFile(String path) {
        if (path.endsWith(File.separator)) {
            System.out.println("创建文件"+ path + "失败, 目标文件不能是目录");
            return false;
        }
        File file = new File(path);
        if (file.exists())  {
            System.out.println("创建文件"+ path + "失败, 目标文件已存在");
            return false;
        }
        if (!file.getParentFile().exists()) {
            if (!file.getParentFile().mkdir()) {
                System.out.println("创建文件"+ path + "失败, 目标目录创建失败");
                return false;
            }
        }
        try {
            if (file.createNewFile()) {
                return true;
            }
            System.out.println("创建文件"+ path + "失败, 目标文件创建失败");
            return false;
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("创建文件"+ path + "失败, 目标文件创建失败" + e.getMessage());
            return  false;
        }
    }

    public static void main(String[] args) {

    }
}
